package com.example.campus.service;


import com.example.campus.pojo.dto.*;
import com.example.campus.pojo.entity.Admin;
import com.example.campus.pojo.vo.StatisticsVO;
import com.example.campus.result.PageResult;

public interface AdminService {

    /**
     * 管理员注册
     * @param adminRegisterDTO
     * @return
     */
    void register(AdminRegisterDTO adminRegisterDTO);

    /**
     * 管理员登录
     * @param adminLoginDTO
     * @return
     */
    Admin login(AdminLoginDTO adminLoginDTO);

    /**
     * 新增管理员
     * @param adminAddDTO
     * @return
     */
    void add(AdminAddDTO adminAddDTO);

    /**
     * 删除管理员
     * @param adminId
     */
    void delete(Long adminId);

    /**
     * 管理员分页查询
     * @param adminPageQueryDTO
     * @return
     *
     */
    PageResult pageQuery(AdminPageQueryDTO adminPageQueryDTO);

    /**
     * 更新管理员信息
     * @param adminUpdateDTO
     */
    void update(AdminUpdateDTO adminUpdateDTO);

    /**
     * 修改管理员状态
     * @param adminStatusChangeDTO
     */
    void changeAdminStatus(AdminStatusChangeDTO adminStatusChangeDTO);

    /**
     * 更新已登录管理员的密码
     * @param adminPwdUpdateDTO
     */
    void updatePwd(PwdUpdateDTO adminPwdUpdateDTO);

    /**
     * 获得统计数据
     * @return
     */
    StatisticsVO getStatistics();
}
